Kibana হলো একটি শক্তিশালী ডেটা ভিজুয়ালাইজেশন এবং বিশ্লেষণ টুল, যা Elasticsearch ডেটা থেকে সহজে তথ্য বের করতে এবং তা উপস্থাপন করতে ব্যবহৃত হয়। Kibana তে ডেটা অনুসন্ধান করতে KQL (Kibana Query Language) এবং Lucene Query Syntax দুটি প্রধান কুয়েরি ভাষা ব্যবহার করা হয়। এই দুটি ভাষা Elasticsearch ডেটার সাথে ইন্টারঅ্যাক্ট করতে সহায়তা করে, তবে তাদের মধ্যে কিছু পার্থক্যও রয়েছে। এখানে KQL এবং Lucene Syntax এর ব্যবহার এবং তাদের মধ্যে পার্থক্য বিস্তারিতভাবে আলোচনা করা হলো।
KQL (Kibana Query Language)
KQL হলো Kibana এর নিজস্ব কুয়েরি ভাষা, যা সহজ এবং ব্যবহারবান্ধব। এটি বিশেষভাবে Kibana এর মধ্যে ডেটা অনুসন্ধান এবং ফিল্টার করার জন্য তৈরি করা হয়েছে। KQL এ ব্যবহারকারীরা সহজে ফিল্ড, মুলতবি মান (wildcards), রেঞ্জ, ম্যাচিং, এবং লজিক্যাল অপারেটর ব্যবহার করে কুয়েরি তৈরি করতে পারেন।
KQL এর বৈশিষ্ট্য
- ইউজার-ফ্রেন্ডলি: KQL একটি সহজ এবং পাঠযোগ্য ভাষা, যা ব্যবহারকারীদের জন্য ডেটা অনুসন্ধানকে আরও সহজ এবং কার্যকরী করে তোলে।
- ফিল্ড বেসড অনুসন্ধান: KQL এ আপনি সরাসরি নির্দিষ্ট ফিল্ডের মান অনুসন্ধান করতে পারেন।
- লজিক্যাল অপারেটর: KQL-এ আপনি AND, OR, NOT ব্যবহার করে শর্তযুক্ত কুয়েরি তৈরি করতে পারেন।
KQL এর ব্যবহার
ফিল্ড অনুসন্ধান: নির্দিষ্ট একটি ফিল্ডের মান অনুসন্ধান করা।
status: "error"মাল্টিপল কন্ডিশন: একাধিক কন্ডিশন ব্যবহার করা।
status: "error" AND message: "timeout"রেঞ্জ অনুসন্ধান: একটি নির্দিষ্ট রেঞ্জের মধ্যে মান খোঁজা।
@timestamp >= "2024-01-01" AND @timestamp <= "2024-12-31"ওয়াইল্ডকার্ড ব্যবহার: শব্দের সাথে যোগ করা wildcard।
message: "timeout*"NOT অপারেটর: নির্দিষ্ট মান বাদ দেওয়ার জন্য NOT ব্যবহার করা।
NOT status: "success"
KQL একটি সহজ, পাঠযোগ্য এবং লজিক্যাল ভাষা যা সাধারণত Kibana UI তে ডেটা অনুসন্ধান করার জন্য ব্যবহৃত হয়।
Lucene Syntax
Lucene Query Syntax হলো Elasticsearch-এ ডেটা অনুসন্ধান করার জন্য ব্যবহৃত একটি শক্তিশালী কুয়েরি ভাষা। এটি একটি কমপ্লেক্স এবং উচ্চক্ষমতাসম্পন্ন ভাষা, যা Kibana বা Elasticsearch এর অ্যাডভান্সড কুয়েরি ফিচারগুলোর জন্য উপযুক্ত। Lucene Syntax এর মাধ্যমে খুব দ্রুত এবং সুনির্দিষ্ট ডেটা অনুসন্ধান করা সম্ভব হয়।
Lucene Syntax এর বৈশিষ্ট্য
- কমপ্লেক্স কুয়েরি: Lucene এর মাধ্যমে ব্যবহারকারীরা আরও কমপ্লেক্স কুয়েরি তৈরি করতে পারেন যেমন রেঞ্জ, ফিল্টারিং, এবং বুলিয়ান অপারেটর ব্যবহার করে।
- ফিল্ড এবং অপারেটর: Lucene কুয়েরি ফিল্ডের মধ্যে সম্পর্ক তৈরি করার জন্য নির্দিষ্ট অপারেটর এবং গঠনের সুবিধা দেয়।
- ওয়াইল্ডকার্ড এবং ফেজ: Lucene অনেক শক্তিশালী ওয়াইল্ডকার্ড এবং প্যাথ গঠন প্রস্তাব করে, যেমন
*(wildcard) এবং+(mandatory terms)।
Lucene Syntax এর ব্যবহার
ফিল্ড অনুসন্ধান: একটি নির্দিষ্ট ফিল্ডের মান অনুসন্ধান করা।
status:"error"মাল্টিপল কন্ডিশন: একাধিক শর্ত ব্যবহার করা।
status:"error" AND message:"timeout"রেঞ্জ অনুসন্ধান: রেঞ্জের মধ্যে মান খোঁজা।
@timestamp:[2024-01-01 TO 2024-12-31]ওয়াইল্ডকার্ড ব্যবহার: wildcard দিয়ে অনুসন্ধান করা।
message:timeout*NOT অপারেটর: NOT অপারেটর দিয়ে মান বাদ দেওয়া।
NOT status:"success"
Lucene Syntax বিশেষ করে অ্যাডভান্সড কুয়েরি ব্যবহারকারী এবং ডেভেলপারদের জন্য উপযুক্ত, যারা জটিল অনুসন্ধান এবং কাস্টম কুয়েরি ব্যবহার করতে চান।
KQL এবং Lucene Syntax এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | KQL | Lucene Syntax |
|---|---|---|
| লক্ষ্য | সহজ, ব্যবহারকারী-বান্ধব, দ্রুত অনুসন্ধান | শক্তিশালী, অ্যাডভান্সড কুয়েরি এবং ফিচার |
| ইউজার ইন্টারফেস | Kibana UI তে সহজে ব্যবহৃত | Kibana UI এবং Elasticsearch API তে ব্যবহৃত |
| কুয়েরি গঠন | সহজ এবং পাঠযোগ্য | কমপ্লেক্স এবং বিস্তারিত |
| অপারেটর | AND, OR, NOT | AND, OR, NOT, +, -, * (wildcards), range operators |
| ব্যবহার | সাধারণ ব্যবহারকারী এবং দ্রুত অনুসন্ধান | ডেভেলপার এবং কমপ্লেক্স অনুসন্ধান |
| ফিল্ডের সাথে অনুসন্ধান | সরাসরি ফিল্ড নাম ব্যবহার | ফিল্ড নাম সহ ফিল্টারিং |
সারাংশ
KQL এবং Lucene Syntax উভয়ই Kibana এবং Elasticsearch এর ডেটা অনুসন্ধান করতে ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। KQL সহজ এবং ব্যবহারকারী-বান্ধব, যা দ্রুত এবং সরল অনুসন্ধান করতে সহায়তা করে। অপরদিকে, Lucene Syntax অধিক ক্ষমতাশালী এবং কমপ্লেক্স কুয়েরি তৈরি করতে সহায়ক, যা বিশেষ করে ডেভেলপারদের জন্য উপযোগী। Kibana তে ব্যবহারকারী তাদের প্রয়োজন অনুযায়ী যে কোন একটি কুয়েরি ভাষা নির্বাচন করতে পারেন, তবে সাধারণভাবে KQL UI তে বেশি জনপ্রিয় এবং Lucene Syntax অধিকতর শক্তিশালী কাস্টম অনুসন্ধানের জন্য ব্যবহৃত হয়।
Read more